---
title: 删除资源 API
description: 删除各种资源的 API 端点，包括服务器、组和配置等
---

# 删除资源 API

本文档描述了用于删除各种资源的 API 端点。

## 删除 MCP 服务器

删除指定的 MCP 服务器配置。

### 端点

```http
DELETE /api/servers/{id}
```

### 参数

| 参数名 | 类型   | 位置 | 必需 | 描述               |
| ------ | ------ | ---- | ---- | ------------------ |
| id     | string | path | 是   | 服务器的唯一标识符 |

### 请求示例

```bash
curl -X DELETE \
  'https://api.mcphub.io/api/servers/mcp-server-123' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json'
```

### 响应

#### 成功响应 (204 No Content)

```json
{
  "success": true,
  "message": "服务器已成功删除",
  "data": {
    "id": "mcp-server-123",
    "deletedAt": "2024-01-15T10:30:00Z"
  }
}
```

#### 错误响应

**404 Not Found**

```json
{
  "error": {
    "code": "SERVER_NOT_FOUND",
    "message": "指定的服务器不存在",
    "details": {
      "serverId": "mcp-server-123"
    }
  }
}
```

**409 Conflict**

```json
{
  "error": {
    "code": "SERVER_IN_USE",
    "message": "服务器正在使用中，无法删除",
    "details": {
      "activeConnections": 5,
      "associatedGroups": ["group-1", "group-2"]
    }
  }
}
```

## 删除服务器组

删除指定的服务器组。

### 端点

```http
DELETE /api/groups/{id}
```

### 参数

| 参数名 | 类型    | 位置  | 必需 | 描述                           |
| ------ | ------- | ----- | ---- | ------------------------------ |
| id     | string  | path  | 是   | 组的唯一标识符                 |
| force  | boolean | query | 否   | 是否强制删除（包含服务器的组） |

### 请求示例

```bash
curl -X DELETE \
  'https://api.mcphub.io/api/groups/production-group?force=true' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json'
```

### 响应

#### 成功响应 (204 No Content)

```json
{
  "success": true,
  "message": "服务器组已成功删除",
  "data": {
    "id": "production-group",
    "deletedServers": ["server-1", "server-2"],
    "deletedAt": "2024-01-15T10:30:00Z"
  }
}
```

## 删除配置项

删除指定的配置项。

### 端点

```http
DELETE /api/config/{key}
```

### 参数

| 参数名 | 类型   | 位置 | 必需 | 描述     |
| ------ | ------ | ---- | ---- | -------- |
| key    | string | path | 是   | 配置键名 |

### 请求示例

```bash
curl -X DELETE \
  'https://api.mcphub.io/api/config/custom-setting' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
```

### 响应

#### 成功响应 (200 OK)

```json
{
  "success": true,
  "message": "配置项已删除",
  "data": {
    "key": "custom-setting",
    "previousValue": "old-value",
    "deletedAt": "2024-01-15T10:30:00Z"
  }
}
```

## 批量删除

### 批量删除服务器

删除多个 MCP 服务器。

#### 端点

```http
DELETE /api/servers/batch
```

#### 请求体

```json
{
  "serverIds": ["server-1", "server-2", "server-3"],
  "force": false
}
```

#### 响应

```json
{
  "success": true,
  "message": "批量删除完成",
  "data": {
    "deleted": ["server-1", "server-3"],
    "failed": [
      {
        "id": "server-2",
        "reason": "服务器正在使用中"
      }
    ],
    "summary": {
      "total": 3,
      "deleted": 2,
      "failed": 1
    }
  }
}
```

## 软删除 vs 硬删除

### 软删除

默认情况下，AIAgentDNS·DNSNode 使用软删除机制：

- 资源被标记为已删除但保留在数据库中
- 可以通过恢复 API 恢复删除的资源
- 删除的资源在列表 API 中默认不显示

### 硬删除

使用 `permanent=true` 参数执行硬删除：

```bash
curl -X DELETE \
  'https://api.mcphub.io/api/servers/mcp-server-123?permanent=true' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
```

<Warning>硬删除操作不可逆，请谨慎使用。</Warning>

## 权限要求

| 操作       | 所需权限                 |
| ---------- | ------------------------ |
| 删除服务器 | `servers:delete`         |
| 删除组     | `groups:delete`          |
| 删除配置   | `config:delete`          |
| 硬删除     | `admin:permanent_delete` |

## 错误代码

| 错误代码                   | HTTP 状态码 | 描述             |
| -------------------------- | ----------- | ---------------- |
| `RESOURCE_NOT_FOUND`       | 404         | 资源不存在       |
| `RESOURCE_IN_USE`          | 409         | 资源正在使用中   |
| `INSUFFICIENT_PERMISSIONS` | 403         | 权限不足         |
| `VALIDATION_ERROR`         | 400         | 请求参数验证失败 |
| `INTERNAL_ERROR`           | 500         | 服务器内部错误   |

## 最佳实践

### 1. 删除前检查

在删除资源前，建议先检查资源的使用情况：

```bash
# 检查服务器使用情况
curl -X GET \
  'https://api.mcphub.io/api/servers/mcp-server-123/usage' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
```

### 2. 备份重要数据

对于重要资源，建议在删除前进行备份：

```bash
# 导出服务器配置
curl -X GET \
  'https://api.mcphub.io/api/servers/mcp-server-123/export' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  > server-backup.json
```

### 3. 使用事务删除

对于复杂的删除操作，使用事务确保数据一致性：

```json
{
  "transaction": true,
  "operations": [
    {
      "type": "delete",
      "resource": "server",
      "id": "server-1"
    },
    {
      "type": "delete",
      "resource": "group",
      "id": "group-1"
    }
  ]
}
```

## 恢复删除的资源

软删除的资源可以通过恢复 API 恢复：

```bash
curl -X POST \
  'https://api.mcphub.io/api/servers/mcp-server-123/restore' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
```
